package com.ruoyi.qd.service;

import java.util.List;
import com.mybatisflex.core.paginate.Page;
import com.ruoyi.common.core.page.PageDomain;
import com.mybatisflex.core.service.IService;
import com.ruoyi.qd.domain.Robot;
import com.ruoyi.qd.vo.RobotListUsableRes;
import com.ruoyi.qd.vo.RobotPageRes;

/**
 * 机器人Service接口
 * 
 * @author tushiguang
 * @date 2024-07-23
 */
public interface IRobotService  extends IService<Robot> {
    /**
     * 查询可用的机器人集合
     */
    List<RobotListUsableRes> listUsable();

    /**
     * 查询机器人
     * 
     * @param id 机器人主键
     * @return 机器人
     */
    Robot selectRobotById(Long id);

    /**
     * 分页查询机器人列表
     *
     * @param pageDomain 分页对象
     * @param robot 机器人
     * @return 分页对象
     */
    Page<RobotPageRes> selectRobotPage(PageDomain pageDomain, Robot robot);

    /**
     * 查询机器人列表
     *
     * @return 机器人集合
     */
    List<RobotPageRes> selectRobotList();

    /**
     * 查询机器人列表
     * 
     * @param robot 机器人
     * @return 机器人集合
     */
    List<Robot> selectRobotList(Robot robot);

    /**
     * 新增机器人
     * 
     * @param robot 机器人
     * @return 结果
     */
    int insertRobot(Robot robot);

    /**
     * 修改机器人
     * 
     * @param robot 机器人
     * @return 结果
     */
    int updateRobot(Robot robot);

    /**
     * 批量删除机器人
     * 
     * @param ids 需要删除的机器人主键集合
     * @return 结果
     */
    int deleteRobotByIds(Long[] ids);

    /**
     * 删除机器人信息
     * 
     * @param id 机器人主键
     * @return 结果
     */
    int deleteRobotById(Long id);
}
